package com.naiterui.ehp.bs.cms.modules.user.vo;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.naiterui.ehp.bs.cms.common.json.Dict;

import lombok.Data;

import io.swagger.annotations.ApiModelProperty;

/**
 * <pre>
 *
 * </pre>
 *
 * @author 王泽浩
 * @date 2019-05-14 17:49
 * @since 1.0.0
 */
@Data
public class PatientBaseInfoVO {
    private Long id;

    /**
     * 合作方id
     */
    private Long partyUserId;

    /**
     * 姓名：<code>name</code>
     */
    private String name;

    private String openId;

    private String unionId;

    /**
     * 性别：<code>gender</code>
     */
    @Dict(type = "user_gender")
    private Integer gender;

    /**
     * 年龄：<code>age</code>
     */
    @Deprecated
    private Integer age;

    /**
     * 城市：<code>cityId</code>
     */
    private Integer cityId;

    private String cityName;

    /**
     * 电话：<code>phone</code>
     */
    private String phone;

    /**
     * 患者登陆token
     */
    private String token;

    /**
     * 身高：<code>height</code>
     */
    private Integer height;

    /**
     * 体重：<code>weight</code>
     */
    private Integer weight;

    /**
     * 创建时间：<code>createdAt</code>
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /**
     * 头像地址（全路径）：<code>headUrl</code>
     */
    private String headUrl;

    /**
     * 昵称：<code>nickName</code>
     */
    private String nickName;

    /**
     * 婚姻状态：<code>maritalStatus</code>
     */
    private Short maritalStatus;

    /**
     * 推荐医生id：<code>recomDoctor</code>
     */
    private Long recomDoctor;

    private String recomDoctorName;

    /**
     * 用户状态 0：正常；1：禁用：<code>accountStatus</code>
     */
    @Dict(type = "patient_account_status")
    private Integer accountStatus;

    /**
     * 迁移用户id：<code>oldId</code>
     */
    private Integer oldId;

    /**
     * 患者标签 0：默认无标签；1：有效患者标签：<code>labelType</code>
     */
    private Integer labelType = 0;

    /**
     * 注册来源 0：未知；1：自主注册；2：医生推荐；3：DM引流：<code>registSource</code>
     */
    private Integer registSource = 0;

    /**
     * 取消关注公众号状态 0：未知；1：未取消；2：已取消'：<code>cancel</code>
     */
    @Dict(type = "patient_cancel")
    private Integer cancel = 1;

    /**
     * 取消关注公众号时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelAt;

    /**
     * 是否新注册用户：true：新注册；false：旧用户<code>newUser</code>
     */
    private Boolean newUser;

    /**
     * 测试帐号状态：0正式，1测试：<code>type</code>
     */
    @Dict(type = "patient_type")
    private Integer type;

    /**
     * 首次上传病历档案标签,0:未上传；1：已上传：<code>firstCaseTag</code>
     */
    private Integer firstCaseTag;
    /**
     * 设备号
     */
    private String deviceSN;
    /**
     * 机型
     */
    private String model;
    /**
     * ip
     */
    private String ip;
    /**
     * 登录地址
     */
    private String loginAddr;

    /**
     * app用户登录的openId
     */
    private String appOpenId;

    /**
     * 身份证号
     */
    private String idCard;
    /**
     * 出生日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthday;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date changedAt;

    /**
     * 认证状态,0:未认证,1:已认证
     */
    @Dict(type = "patient_status")
    private Integer status;

    /**
     * 居住详细地址
     */
    @ApiModelProperty(value = "居住详细地址")
    private String address;
    /**
     * 紧急联系人姓名
     */
    @ApiModelProperty(value = "紧急联系人姓名")
    private String contactName;
    /**
     * 紧急联系人电话
     */
    @ApiModelProperty(value = "紧急联系人电话")
    private String contactPhone;
}
